[KDT] 인공지능 AIoT이용한 빅데이터 분석
산업솔루션 개발 취업연계 부트캠프 (24.07 ~ 25.01)
LLM
영화 검색 추천
CENTER 안채연
SUPPORTER 조영훈
1
개요
배경
필자는 수집한 데이터를 인공지능이 분석하는 AIoT대해 배우는 강의를 수강하고 있다
습득한 지식을 바탕으로 OpenCV 활용해 영화 포스터를 분석 분류하는 프로젝트를 진행한 있다
이것의 연장선으로 이번엔 영상이 아닌 텍스트로 알맞은 영화 정보를 찾는 프로젝트를 기획하게 되었다
최근 검색 엔진 산업에서 LLM 접목하여 목적을 학습한 결과를 보여주는 향상된 검색 경험을 소비자에게
공하는 사례가 늘고 있다
이런 기능을 구현하고자 사용자가 검색어를 입력하면 키워드를 추출하여맞춤형 결과를 제공하는 프로젝트를
기획하게 되었다
목표
사용자가 입력한 문장을 분석해 관련
영화들을 검색 추천하는 시스템 구현
출처: Torro MEDIA
2
일정
1. 기획 일정 수립
2. 개발환경 준비
3. 데이터베이스 연동
4. 서버 구축
5. LLM 활용
6. 페이지 작성
팀원 담당 작업
안채연(총책임자): 풀스텍 개발, 영화 DB 사이트 연동, 문서화
조영훈: LLM 연동
3
핵심 기술 기술
회원 관리, LLM 기반 텍스트 분석, 맞춤형 필터링 검색, 영화 DB 사이트 API 요청 응답, 회원 정보 영화
정보 DB 조회
동작 과정 (7 페이지 상세 설명 참고)
회원 인증 검색 인공지능의 텍스트 분석
영화 데이터 API 요청 응답 사용자 관심 정보 DB 저장 인공지능의 영화 추천
개발환경
-운영 체제: Windows 11, Linux
-프로그래밍 언어: Python, JavaScript
-편집기: Visual Studio Code
-프론트엔드 & 백엔드: HTML5, Bootstrap,
FastAPI
-버전 관리, 협업 도구: GitHub
-패키지 관리: pip
-데이터베이스: MySQL
-API: REST API
-인공지능: Llama
4
users (사용 정보)
- id: 고유 번호
- username: 사용자 이메일
- Hashed_password: bcrypt 알고리즘을 적용한 비밀번호
**bcrypt 알고리즘: 일정한 규칙한 따라 해시 값으로 변환하여 실제 비밀번호를 보이지 않게
rec_fav (용자 추천해줄 영화 스트)
- id: 고유 번호
- User_id: users.id외래 관계를 형성하여 특정 사용자와 연결함
- Movie_code: 추천 영화 리스트
user_fav (용자 관심
가지 영화 정보)
- Id: 고유 번호
- User_id: users.id 외래
관계를 형성하여 특정 사용자와
연결함
- Code: 영화 코드
- Title: 영화 제목
- Director: 영화 감독
- Actor: 영화에 출연한 배우
- Genre: 영화 장르
- Nation: 영화 제작국가
ERD(Entity-Relationship Diagram)
데이터베이스의 구조와 데이터 간의 관계를 시각적으로
표현함
회원
추천 리스트
영화 정보
ERD 칼럼에 대한 소개를 통해 데이터베이스가 어떤 방식으로 구축되었는지 설명한다
5
6
영화진흥위원회 OPEN API
서비스
영화 정보 DB
TMDB API
영화 사진 DB
(Llama 3.1 기반의 )Bllossom
LLM
URL
https://huggingface.co/MLP-
KTLim/llama-3-Korean-Bllossom-8B
소개
서울과기대 슈퍼컴퓨팅 센터의 지원으로
만들어진 한국어-영어 이중 언어모델
상세
영화 데이터에 대한 학습이 되지 않아
접적 활용은 어려움이 있음
문장을 요약하거나 키워드를 추출하는데
강점을 보임
주요 기술인 검색과 추천에 활용
URL
https://www.kobis.or.kr/kobisopenapi/h
omepg/main/main.do
기능
필요에 따라 호출하여 다양한 영화 데이터
제공
상세
영화 목록: 영화명, 감독명
영화 상세정보: 영화코드를 통해 조회
영화인 목록: 영화인명, 필모그래피
영화인 상세정보: 영화인코드를 통해 조회
URL
https://developer.themoviedb.org/refere
nce/intro/getting-started
기능
현재 사용 가능한 영화, TV, 배우 이미지
대한 목록 제공
상세
SEARCH Movie: 영화 포스터
SEARCH Person: 영화인 프로필 사진
API
시스템을 작동하는데 필요한 외부에서 가져온 기술을 서술한다
유저 플로우
시작 로그인/회원가입 검색 결과 표시 추천
사용자가 페이지 간에 어떻게 이동하며 특정 작업을 수행하는지 보여준다
7
구조: 검색
검색 동작을 수행할 시스템의 구성요소가 상호작용하는 내용에 대해 아키텍처를 통해 요약하였다
8
구조: 추천
9
추천 동작을 수행할 시스템의 구성요소가 상호작용하는 내용에 대해 아키텍처를 통해 요약하였다
개발 결과: 헤더
로그인
로그인
로그아웃 버튼으로
활성화된다
로그인한 사용자를
보여준다
검색어를 입력한다
(필터링이 가능한 항목: 제목, 감독, 제작국가,
배우)
로그인에 따라 화면 일부가 동적으로 변한다
10
로그인 회원가입
개발 결과: 로그인
로그인 버튼을 누르면 모달창이 뜨며 Ajax 방식으로 통신한다
**AJAX (Asynchronous JavaScript and XML): 페이지를 새로고침하지 않고도 서버와 데이터를 비동기적으로 교환하여
구동 속도와 사용자의 경험(UX)개선함
서비스 제공을 위해 회원 인증을 한다
11
개발 결과: 검색 -영화
영화 목록 영화 상세 정보
검색어가 포함한 내용: 영화 제목, 감독, 제작국가
상단의 화살표를
누르면 다음
페이지가 넘어가
추가적인 데이터를
보여준다
데이터는 카드
형식으로 영역을
정해주었다
포스터를 클릭하면
영화에 대한
상세정보가
모달창으로 보인다
닫기나 모달창
바깥의 공간을
누르면 다시 목록
페이지로 돌아간다
LLM 검색어에서 추출한 키워드를 바탕으로 검색 결과를 제공한다
12
개발 결과: 검색 -
영화인 목록 영화인 상세 정보
뒤로 가기 버튼을 눌러
영화인 상세 정보
모달창으로 돌아간다
13
검색어가 포함한 내용: 배우
LLM 검색어에서 추출한 키워드를 바탕으로 검색 결과를 제공한다
필모그래피 안의 포스터를
클릭하면 영화 상세 정보
모달창으로 이동한다
프로필을 클릭하면
영화인에 대한 상세정보가
모달창으로 보인다
영화인의 프로필이
뜨며 밑단에는
이름과 영문명이
적혀있다
개발 결과: 추천
추천 섹션
사용자가 영화 상세 정보 모달창을
이용할 백그라운드에서 데이터를
저장하고 최신 목록 5개를
선정하여 추천 목록에 보여준다
LLM 사용자가 검색을 하며 쌓인 데이터를 이용해 추천 목록을 만든다
14
기대 효과
사용자 영화 검색
경험 향상
빠르고 정확한 영화
추천으로 시간 절약
개인화된 정보 제공
리뷰
15
일반 영화 검색 포털과 차별화를 하기 위해 사용자가 주로 영화의 어느 요소에 관심을 두는지 파악하고
이것을 위주로 UI 구성을 개선
페이지에 영화 순위 정보를 실시간으로 업데이트하여 최신 정보 제공
RAG을통LLM 기능 향상 (Retrieval-Augmented Generation: LLM 검색을 함께 사용하여 답변의
정확성과 최신성을 높이는 기술)
OTT 구독 현재 상영 영화 예매 연동하여 수익성 창출
‘좋아요’기능을 추가하여 영화의 인기도 확인
확장 가능성
느낀
개인적으로 처음 시도하는 프로젝트라 알맞은 주제를 정하는게 어려웠는데 학원에서 이에 대해 상세한
가이드라인을 제공해줬으면 좋겠다는 생각이 들었다
무작정 코딩하는 것보다 우선 로직을 글로 작성해보고 정리하는 것이 문제 해결에 도움이 되었다
시스템 기술의 구현만큼이나 UI유지보수하는데 생각보다 시간이 많이 걸렸다
무료 인공지능은 성능에 한계가 있어 영화 검색에 직접적으로 활용하기 어려운 것이 아쉬웠다
감사합니다
16